<?xml version="1.0"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="HTML Tidy for HTML5 for Linux version 5.2.0" name="generator"/>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<link href="style.css" rel="stylesheet" type="text/css"/>
<title>Modelica.UsersGuide.ReleaseNotes.Version_4_0_0</title>
</head>
<body>
<h1>ReleaseNotes</a>.<span class="omc-h1">Version_4_0_0</span></h1>
<h2><a id="info" name="info">Information</a></h2>
<p>Version 4.0.0 is <strong>not</strong> backward compatible to
previous versions. A tested conversion script is provided to
transform models and libraries of previous versions 3.x.y to the
new version. Short Overview:</p>
<ul>
<li>About <a href="../Documentation/Version-4.0.0/ResolvedGitHubIssues.html">
649 issues (including 432 pull requests)</a> have been addressed
for this release.</li>
<li>This version is based on the recent Modelica language standard
version 3.4.</li>
<li>The library version (i.e., "4.0.0") follows semantic versioning
using the convention <code>MAJOR.MINOR.BUGFIX</code> (see Version
Management for details) and was decoupled from the version of
the utilized version of the Modelica language standard.</li>
<li>Obsolete classes of previous versions 3.x.y have been
replaced.</li>
<li>Obsolete classes, that could not be automatically converted to
alternative implementations, have been moved to library
ObsoleteModelica4.</li>
<li>Major emphasis was put on improvements of the overall quality
with respect to class naming and package structuring, conventions
and style guide-lines, icons, documentation style and example
models. The following sublibraries have been renamed.
<ol>
<li>Modelica.SIunits → Modelica.Units.{SI, NonSI, Conversions}</li>
<li>Modelica.Electrical.MultiPhase →
Modelica.Electrical.Polyphase</li>
<li>Modelica.Electrical.QuasiStationary →
Modelica.Electrical.QuasiStatic</li>
</ol>
</li>
<li>The licenses of the utilized open-source third-party software
components as well as the BSD 3-clause license of the Modelica
Standard Library itself are available as separate <a href="../Licenses">resources</a>.</li>
</ul>
<p>The exact difference between package Modelica version 4.0.0 and
version 3.2.3 is summarized in a <a href="../Documentation/Version-4.0.0/DifferencesTo323.html">
comparison table</a>.</p>
<p>The following <font color="blue"><strong>Modelica
packages</strong></font> have been tested that they work together
with this release of package Modelica (alphabetical list). Hereby
simulation results of the listed packages have been produced with
package Modelica version 3.2.3 and compared with the simulation
results produced with version 4.0.0 Beta.1. The tests have been
performed with Dymola 2020/2020x/2021:</p>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th>Library</th>
<th>Version</th>
<th>Library provider</th>
</tr>
<tr>
<td><a href="https://github.com/lbl-srg/modelica-buildings/issues/1789">Buildings</a></td>
<td> &gt; 6.0.0</td>
<td>LBNL</td>
</tr>
<tr>
<td>BrushlessDCDrives</td>
<td>1.1.1</td>
<td>Dassault Syst&egrave;mes</td>
</tr>
<tr>
<td>Clara</td>
<td>1.5.0</td>
<td>XRG Simulation GmbH and TLK-Thermo GmbH</td>
</tr>
<tr>
<td>ClaraPlus</td>
<td>1.3.0</td>
<td>XRG Simulation GmbH and TLK-Thermo GmbH</td>
</tr>
<tr>
<td>DriveControl</td>
<td>4.0.0</td>
<td>Anton Haumer</td>
</tr>
<tr>
<td>DymolaModels</td>
<td>1.1</td>
<td>Dassault Syst&egrave;mes</td>
</tr>
<tr>
<td>EDrives</td>
<td>1.0.1</td>
<td>Anton Haumer and Christian Kral</td>
</tr>
<tr>
<td>ElectricalMachines</td>
<td>0.9.1</td>
<td>Anton Haumer</td>
</tr>
<tr>
<td>ElectricPowerSystems</td>
<td>1.3.1</td>
<td>Dassault Syst&egrave;mes</td>
</tr>
<tr>
<td>ElectrifiedPowertrains</td>
<td>1.3.2</td>
<td>Dassault Syst&egrave;mes</td>
</tr>
<tr>
<td>ElectroMechanicalDrives</td>
<td>2.2.0</td>
<td>Christian Kral</td>
</tr>
<tr>
<td>EMOTH</td>
<td>1.4.1</td>
<td>Anton Haumer</td>
</tr>
<tr>
<td>HanserModelica</td>
<td>1.1.0</td>
<td>Christian Kral</td>
</tr>
<tr>
<td>IBPSA</td>
<td> &gt; 3.0.0</td>
<td>IBPSA Project 1</td>
</tr>
<tr>
<td>KeywordIO</td>
<td>0.9.0</td>
<td>Christian Kral</td>
</tr>
<tr>
<td>Modelica_DeviceDrivers</td>
<td>1.8.1</td>
<td>DLR, ESI ITI, and Linköping University (PELAB)</td>
</tr>
<tr>
<td>Optimization</td>
<td>2.2.4</td>
<td>DLR</td>
</tr>
<tr>
<td>PhotoVoltaics</td>
<td>1.6.0</td>
<td>Christian Kral</td>
</tr>
<tr>
<td>PlanarMechanics</td>
<td>1.4.1</td>
<td>Dirk Zimmer</td>
</tr>
<tr>
<td>Testing</td>
<td>1.3</td>
<td>Dassault Syst&egrave;mes</td>
</tr>
<tr>
<td>ThermalSystems</td>
<td>1.6.0</td>
<td>TLK-Thermo GmbH</td>
</tr>
<tr>
<td>TIL</td>
<td>3.9.0</td>
<td>TLK-Thermo GmbH</td>
</tr>
<tr>
<td>TILMedia</td>
<td>3.9.0</td>
<td>TLK-Thermo GmbH</td>
</tr>
<tr>
<td>TSMedia</td>
<td>1.6.0</td>
<td>TLK-Thermo GmbH</td>
</tr>
<tr>
<td>VehicleInterfaces</td>
<td>1.2.5</td>
<td>Modelica Association</td>
</tr>
<tr>
<td>WindPowerPlants</td>
<td>1.2.0</td>
<td>Christian Kral</td>
</tr>
</table>
<p><br/>
The following <font color="blue"><strong>new
libraries</strong></font> have been added:</p>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td>Modelica.Clocked</td>
<td>This library can be used to precisely define and synchronize
sampled data systems with different sampling rates.<br/>
The library previously was available as separate package <a href="https://github.com/modelica/Modelica_Synchronous">Modelica_Synchronous</a>.
(This library was developed by DLR in close cooperation with
Dassault Systèmes Lund.)</td>
</tr>
<tr>
<td>Modelica.Electrical.Batteries</td>
<td>This library offers simple battery models.<br/>
(This library was developed by Anton Haumer and Christian
Kral.)</td>
</tr>
</table>
<p><br/>
The following <font color="blue"><strong>new
components</strong></font> have been added to <font color="blue"><strong>existing</strong></font> libraries:</p>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td colspan="2"><strong>Modelica.Blocks.Sources</strong></td>
</tr>
<tr>
<td>SineVariableFrequencyAndAmplitude<br/>
CosineVariableFrequencyAndAmplitude</td>
<td>Added signal sources with variable amplitude and frequency;
sine and cosine waveforms are provided.</td>
</tr>
<tr>
<td>Sinc</td>
<td>Added signal source of
<code>amplitude*sin(2*π*f*t)/(2*π*f*t)</code>.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Analog.Sources</strong></td>
</tr>
<tr>
<td>SineVoltageVariableFrequencyAndAmplitude<br/>
CosineVoltageVariableFrequencyAndAmplitude<br/>
SineCurrentVariableFrequencyAndAmplitude<br/>
CosineCurrentVariableFrequencyAndAmplitude</td>
<td>Added voltage and current sources with variable amplitude and
frequency; sine and cosine waveforms are provided.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Machines.Sensors</strong></td>
</tr>
<tr>
<td>SinCosResolver</td>
<td>Added resolver with two sine and two cosine tracks to be used
in drive control applications.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Machines.Utilities</strong></td>
</tr>
<tr>
<td>SwitchYDwithArc</td>
<td>Added wye delta switch with arc model and time delay between
the two switching events.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.PowerConverters</strong></td>
</tr>
<tr>
<td>ACAC</td>
<td>Added single-phase and polyphase triac models (AC/AC
converters).</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Magnetic.FluxTubes.Shapes.FixedShape</strong></td>
</tr>
<tr>
<td>HollowCylinderCircumferentialFlux<br/>
Toroid</td>
<td>Added circumferential flux models of hollow cylinder and toroid
with circular cross section.</td>
</tr>
<tr>
<td colspan="2">
<strong>Magnetic.QuasiStatic.FluxTubes.Shapes.FixedShape</strong></td>
</tr>
<tr>
<td>HollowCylinderCircumferentialFlux<br/>
Toroid</td>
<td>Added circumferential flux models of hollow cylinder and toroid
with circular cross section.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Visualizers.Advanced</strong></td>
</tr>
<tr>
<td>Vector</td>
<td>Added 3-dimensional animation for visualization of vector
quantities (force, torque, etc.)</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.Translational.Components</strong></td>
</tr>
<tr>
<td>RollingResistance</td>
<td>Added resistance of a rolling wheel incorporating the
inclination and rolling resistance coefficient.</td>
</tr>
<tr>
<td>Vehicle</td>
<td>Added simple vehicle model considering mass and inertia, drag
and rolling resistance, inclination resistance.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Math</strong></td>
</tr>
<tr>
<td>BooleanVectors.andTrue</td>
<td>Similar to <code>allTrue</code>, but return <code>true</code>
on empty input vector.</td>
</tr>
<tr>
<td>Matrices.LAPACK.dgeqp3</td>
<td>Compute the QR factorization with column pivoting of square or
rectangular matrix.</td>
</tr>
<tr>
<td>Random.Utilities.automaticLocalSeed</td>
<td>Create an automatic local seed from the instance name.</td>
</tr>
</table>
<p><br/>
The following <font color="blue"><strong>existing
components</strong></font> have been <font color="blue"><strong>improved</strong></font> in a <font color="blue"><strong>backward compatible</strong></font> way:</p>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td colspan="2"><strong>Modelica.Blocks.Sources</strong></td>
</tr>
<tr>
<td>CombiTimeTable</td>
<td>Added second derivative and modified Akima interpolation.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Blocks.Tables</strong></td>
</tr>
<tr>
<td>CombiTable1Ds<br/>
CombiTable1Dv</td>
<td>Added second derivatives and modified Akima interpolation.</td>
</tr>
<tr>
<td>CombiTable2Ds<br/>
CombiTable2Dv</td>
<td>Added second derivatives.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Analog.Basic</strong></td>
</tr>
<tr>
<td>Gyrator</td>
<td>Serves as generalized gyrator model as IdealGyrator was
removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Analog.Ideal</strong></td>
</tr>
<tr>
<td>IdealizedOpAmpLimited</td>
<td>Added homotopy to operational amplifier.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Semiconductors</strong></td>
</tr>
<tr>
<td>NPN<br/>
PNP</td>
<td>Added optional substrate connector.</td>
</tr>
</table>
<p><br/>
The following <font color="blue"><strong>existing
components</strong></font> have been <font color="blue"><strong>changed</strong></font> in a <font color="blue"><strong>non-backward compatible</strong></font> way:</p>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td colspan="2"><strong>Modelica.Blocks</strong></td>
</tr>
<tr>
<td>Nonlinear.Limiter<br/>
Nonlinear.VariableLimiter</td>
<td>The superfluous parameter <code>limitsAtInit</code> has been
removed.</td>
</tr>
<tr>
<td>Continuous.PID</td>
<td>The initialization option
<code>initType</code> = <code>InitPID.DoNotUse_InitialIntegratorState</code>
to only initialize the integrator state has been removed. This
option has been converted to both initialize the integrator state
and the derivative state, i.e.,
<code>initType</code> = <code>Init.InitialState</code>.</td>
</tr>
<tr>
<td>Continuous.LimPID</td>
<td>The superfluous parameter <code>limitsAtInit</code> has been
removed.<br/>
The initialization option
<code>initType</code> = <code>InitPID.DoNotUse_InitialIntegratorState</code>
to only initialize the integrator state has been removed. This
option has been converted to both initialize the integrator state
and the derivative state, i.e.,
<code>initType</code> = <code>Init.InitialState</code>.</td>
</tr>
<tr>
<td>Nonlinear.DeadZone</td>
<td>The superfluous parameter <code>deadZoneAtInit</code> has been
removed.</td>
</tr>
<tr>
<td>Interfaces.PartialNoise<br/>
Noise.UniformNoise<br/>
Noise.NormalNoise<br/>
Noise.TruncatedNormalNoise<br/>
Noise.BandLimitedWhiteNoise</td>
<td>As a side-effect of the updated computation in
Modelica.Math.Random.Utilities.automaticLocalSeed the
<code>localSeed</code> parameter is computed differently if
<code>useAutomaticLocalSeed</code> is set to true.</td>
</tr>
<tr>
<td>Types.InitPID</td>
<td>The enumeration type has been converted to
<code>Types.Init</code> with exception of the alternative
<code>InitPID.DoNotUse_InitialIntegratorState</code>, that was
converted to <code>Init.InitialState</code> leading to a different
initialization behaviour.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Machines.Utilities</strong></td>
</tr>
<tr>
<td>SwitchYD</td>
<td>The
IdealCommutingSwitch is replaced by an
IdealOpeningSwitch and an
IdealClosingSwitch to allow a time delay between the two
switching actions.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Electrical.Spice3</strong></td>
</tr>
<tr>
<td>Internal.MOS2<br/>
Semiconductors.M_NMOS2<br/>
Semiconductors.M_PMOS2</td>
<td>The final parameter <code>vp</code> has been removed.<br/>
The obsolete variables <code>cc_obsolete</code>,
<code>icqmGB</code>, <code>icqmGS</code>, <code>icqmGD</code>,
<code>MOScapgd</code>, <code>MOScapgs</code>,
<code>MOScapgb</code>, <code>qm</code> and <code>vDS</code> have
been removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Magnetic.QuasiStatic.FundamentalWave.Utilities</strong></td>
</tr>
<tr>
<td>SwitchYD</td>
<td>The
IdealCommutingSwitch is replaced by an
IdealOpeningSwitch and an
IdealClosingSwitch to allow a time delay between the two
switching actions.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Forces</strong></td>
</tr>
<tr>
<td>WorldForce</td>
<td>The parameters <code>diameter</code> and <code>N_to_m</code>
have been removed.</td>
</tr>
<tr>
<td>WorldTorque</td>
<td>The parameters <code>diameter</code> and <code>Nm_to_m</code>
have been removed.</td>
</tr>
<tr>
<td>WorldForceAndTorque</td>
<td>The parameters <code>forceDiameter</code>,
<code>torqueDiameter</code>, <code>N_to_m</code>, and
<code>Nm_to_m</code> have been removed.</td>
</tr>
<tr>
<td>Force</td>
<td>The parameter <code>N_to_m</code> has been removed.</td>
</tr>
<tr>
<td>Torque</td>
<td>The parameter <code>Nm_to_m</code> has been removed.</td>
</tr>
<tr>
<td>ForceAndTorque</td>
<td>The parameters <code>N_to_m</code> and <code>Nm_to_m</code>
have been removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Joints</strong></td>
</tr>
<tr>
<td>Prismatic</td>
<td>The superfluous constant <code>s_offset</code> has been
removed.</td>
</tr>
<tr>
<td>Revolute</td>
<td>The superfluous constant <code>phi_offset</code> has been
removed.</td>
</tr>
<tr>
<td>FreeMotion<br/>
FreeMotionScalarInit</td>
<td>The parameter <code>arrowDiameter</code> has been removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Parts</strong></td>
</tr>
<tr>
<td>Body</td>
<td>The superfluous parameter <code>z_a_start</code> has been
removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Sensors</strong></td>
</tr>
<tr>
<td>AbsoluteSensor<br/>
RelativeSensor<br/>
Distance</td>
<td>The parameter <code>arrowDiameter</code> has been removed.</td>
</tr>
<tr>
<td>CutForce</td>
<td>The parameters <code>forceDiameter</code> and
<code>N_to_m</code> have been removed.</td>
</tr>
<tr>
<td>CutForce</td>
<td>The parameters <code>torqueDiameter</code> and
<code>Nm_to_m</code> have been removed.</td>
</tr>
<tr>
<td>CutForceAndTorque</td>
<td>The parameters <code>forceDiameter</code>,
<code>torqueDiameter</code>, <code>N_to_m</code>, and
<code>Nm_to_m</code> have been removed.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Mechanics.MultiBody.Visualizers</strong></td>
</tr>
<tr>
<td>Advanced.Arrow<br/>
Advanced.DoubleArrow<br/>
FixedArrow<br/>
SignalArrow</td>
<td>The parameter <code>diameter</code> has been removed.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Fluid.Machines</strong></td>
</tr>
<tr>
<td>PartialPump</td>
<td>The superfluous parameter <code>show_NPSHa</code> has been
removed.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Thermal.HeatTransfer</strong></td>
</tr>
<tr>
<td>Fahrenheit.FromKelvin<br/>
Rankine.FromKelvin<br/>
Rankine.ToKelvin</td>
<td>The superfluous parameter <code>n</code> has been removed.</td>
</tr>
</table>
<p><br/>
The following <font color="red"><strong>critical
errors</strong></font> have been fixed (i.e., errors that can lead
to wrong simulation results):</p>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td colspan="2"><strong>Modelica.Blocks.Math</strong></td>
</tr>
<tr>
<td>Pythagoras</td>
<td>The case with negative <code>y2</code> was not correctly
considered if <code>u1IsHypotenuse</code> is <code>true</code>.
This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Semiconductors</strong></td>
</tr>
<tr>
<td>Diode</td>
<td>Fixed unit error in current equations.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Electrical.Spice3.Additionals</strong></td>
</tr>
<tr>
<td>poly</td>
<td>The case with one coefficient and one variable was not
correctly considered. This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Fluid.Dissipation.PressureLoss.General</strong></td>
</tr>
<tr>
<td>dp_volumeFlowRate_DP<br/>
dp_volumeFlowRate_MFLOW</td>
<td>The mass flow rate was not correctly computed if the pressure
drop is a linear function of the volume flow rate. This has been
corrected.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Media.Air.MoistAir</strong></td>
</tr>
<tr>
<td>density_derX<br/>
s_pTX<br/>
s_pTX_der</td>
<td>The calculation was wrong. This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Media.Air.ReferenceAir.Air_Base</strong></td>
</tr>
<tr>
<td>BaseProperties</td>
<td>The unit of the specific gas constant <code>R_s</code> was not
correctly considered. This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Media.IdealGases.Common.Functions</strong></td>
</tr>
<tr>
<td>s0_Tlow_der</td>
<td>The calculation was wrong. This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Media.IdealGases.Common.MixtureGasNasa</strong></td>
</tr>
<tr>
<td>T_hX</td>
<td>The function inputs <code>exclEnthForm</code>,
<code>refChoice</code> and <code>h_off</code> were not considered.
This has been corrected.</td>
</tr>
<tr>
<td colspan="2">
<strong>Modelica.Media.Incompressible.TableBased</strong></td>
</tr>
<tr>
<td>T_ph</td>
<td>The pressure negligence was not considered. This has been
corrected.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Media.R134a.R134a_ph</strong></td>
</tr>
<tr>
<td>setState_pTX</td>
<td>Only applicable in one-phase regime: The Newton iteration for
the calculation of the density may possibly converge to the wrong
root. This has been improved.</td>
</tr>
<tr>
<td>setState_dTX<br/>
setState_psX</td>
<td>The calculation was wrong in two-phase regime. This has been
corrected.</td>
</tr>
<tr>
<td colspan="2"><strong>Modelica.Utilities.System</strong></td>
</tr>
<tr>
<td>getTime</td>
<td>The month and year was only correctly returned if the
implementing source file (ModelicaInternal.c) was compiled for
Windows OS. This has been corrected.</td>
</tr>
</table>
<hr/>
Generated at 2020-06-04T16:16:44Z by <a href="http://openmodelica.org">OpenModelica 1.16.0~dev-371-geb234c0</a>
</body>
</html>
